#ifndef _DEV_MANAGER_H_
#define _DEV_MANAGER_H_

#include "common/common.h"
#include "json/json-usr.h"
#include "device/dev_common.h"
#include "device/dev_static.h"
#include "device/dev_hotplug.h"
#include "device/ip_scan.h"

namespace iecas_ns
{
    class CDevManager
    {
		public:
			static shared_ptr<CDevManager> getInstance();
            CDevManager();
			bool init(void);
            void start(void);
		private:
			static shared_ptr<CDevManager> sm_intancePtr;
            Value m_dev_fd_stat;
            Value m_ip_name;
            shared_ptr<CCommon> m_commonPtr;
            shared_ptr<CJsonUsr> m_jsonUsrPtr;
            shared_ptr<CDevCommon> m_devCommonPtr;
            shared_ptr<CDevStatic> m_devStaticPtr;
            shared_ptr<CDevHotplug> m_devHotplugPtr;
            shared_ptr<CIpScan> m_ipscanPtr;
            void loop(void);
            bool writeDeviceFile(void);
            bool writeIpNameFile(void);
    };
}

#endif